home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / UTILFILE / UNPROT2.LZH / SKPROKEY.FIX < prev    next >
Text File  |  1984-11-10  |  8KB  |  184 lines

  1.  
  2.  
  3.      Attention Sidekick/Prokey users !  We at Borland were having
  4. trouble getting Sidekick to be compatible with Rosesoft's Prokey and
  5. as many of you Prokey users out there know everything locked up when the
  6. two got together.  The reason Prokey does not work is because it trashes
  7. some of the registers when running and confuses Sidekick as to make your
  8. terminal go down.  Enclosed is the portion of Prokey which does this.
  9.  
  10. 0730  2EF606D402FF              TEST    CS:BYTE PTR [02D4H],OFFH
  11. 0736  7409                      JE      0741H
  12. 0738  2EFF2EC602                JMP     CS:DWORD PTR [02C6H]
  13. 073D  5B                        POP     BX
  14. 073E  1F                        POP     DS
  15. 073F  EBF7                      JMP     SHORT 0738H
  16. 0741  1E                        PUSH    DS
  17. 0742  53                        PUSH    BX
  18. 0743  8CCB                      MOV     BX,CS
  19. 0745  8EDB                      MOV     DS,BX
  20. 0747  FB                        STI
  21. 0748  C5053D0100                MOV     BYTE PTR [013DH],00H
  22. 074D  803E660400                CMP     BYTE PTR [0466H],00H
  23. 0752  7420                      JE      0774H
  24. 0754  833E670400                CMP     WORD PTR [0469H],00H
  25. 0759  7507                      JNE     0762H
  26. 075B  833E670400                CMP     WORD PTR [0467H],00H
  27. 0760  740D                      JE      076FH
  28. 0762  832E670401                SUB     WORD PTR [0467H],01H
  29. 0767  831E690400                SBB     WORD PTR [0469H],00H
  30. 076C  EB06                      JMP     SHORT 0774H
  31. 076E  90                        NOP
  32. 076F  C606660400                MOV     BYTE PTR [0466H],00H
  33. 0774  803E530400                CMP     BYTE PTR [0466H],00H
  34. 0779  74C2                      JE      037DH
  35. 077B  833E662400                CMP     WORD PTR [2466H],00H
  36. 0780  7507                      JNE     0789H
  37. 0782  833E682400                CMP     WORD PTR [2468H],00H
  38. 0787  740C                      JE      0795H
  39. 0789  832E682401                SUB     WORD PTR [2468H],01H
  40. 078E  831E662400                SBB     WORD PTR [2466H],00H
  41. 0793  EBA8                      JMP     SHORT 073DH
  42. 0795  E8841D                    CALL    251CH                    ;HMMM !
  43. 0798  EBA3                      JMP     SHORT 073DH
  44.  
  45. THE SAGA CONTINUES ...
  46.  
  47. 251C  50                        PUSH    AX
  48. 251D  1E                        PUSH    DS
  49. 251E  A05304                    MOV     AL,[0453H]
  50. 2521  3C01                      CMP     AL,01H
  51. 2523  7407                      JE      252CH
  52. 2525  3C02                      CMP     AL,02H
  53. 2527  743F                      JE      2568H
  54. 2529  1F                        POP     DS
  55. 252A  58                        POP     AX
  56. 252B  C3                        RET     ?NEAR
  57. 252C  BD9D2D                    MOV     BP,2D9DH       BP DESTROYED
  58. 252F  E8480E                    CALL    337AH
  59. 2532  A16C24                    MOV     AX,[246CH]
  60. 2535  A39D2D                    MOV     [2D9DH],AX
  61. 2538  BD9D2D                    MOV     BP,2D9DH
  62. 253B  E8E30D                    CALL    3321H
  63. 253E  BD9D2D                    MOV     BP,2D9DH
  64. 2541  BEE023                    MOV     SI,23E0H       SI DESTROYED
  65. 2544  B601                      MOV     DH,01H         DX DESTROYED
  66. 2546  B201                      MOV     DL,01H         (BUT WILL BE RESTORED
  67. 2548  E8230C                    CALL    317FH          BY THE BIOS)
  68. 254B  E88407                    CALL    2CD2H
  69. 254E  8B366024                  MOV     SI,[2460H]
  70. 2552  387D07                    CALL    2CD2H
  71. 2555  A16224                    MOV     AX,[2462H]
  72. 2558  A36824                    MOV     [2468H],AX
  73. 255B  C70666240000              MOV     WORD PTR [2466H],000H
  74. 2561  C606530402                MOV     BYTE PTR [0453H],02H
  75. 2566  EBC1                      JMP     SHORT 2529H
  76. 2568  BD9D2D                    MOV     BP,2D9DH
  77. 256B  E80C0E                    CALL    337AH
  78. 256E  C606530400                MOV     BYTE PTR [0453H],00H
  79. 2573  EBB4                      JMP     SHORT 2529H
  80.  .
  81.  .
  82.  .
  83.  
  84. Prokey does not save and restore all registers when trapping interrupt
  85. 1C.  The reason why this error occurs at a higher frequency when using
  86. Sidekick is beyond this discussion. However, to verify the error try the
  87. following:
  88.  
  89. 1. Start Prokey
  90. 2. Define a key recursively
  91. 3. Notice prokey now issues an error message
  92. 4. terminate definition (fast...)
  93. 5. press return 100 times
  94. 6. if prokey did not crash repeat step 2-6
  95.  
  96. Register destroying occurs when Prokey is flashing error message.  You must
  97. terminate and press return as fast as possible, and be logged on a floppy
  98. drive (important: let your prompt show the active directory in order to let
  99. dos read on the disk).
  100.  
  101. The following program establishes a trap at interrupt 8 (to make sure Prokey
  102. or others does not overwrite it, bios int 8 then activates 1C).
  103.  
  104. CODE                          SEGMENT
  105.                               ASSUME     CS:CODE
  106.                               ORG        100H
  107. START                         PROC
  108.                               JMP        SHORT SETUP
  109. START                         ENDP
  110. INT08SAVE                     DD
  111. INT08TRAP                     PROC       FAR
  112.                               PUSH       AX
  113.                               PUSH       BX
  114.                               PUSH       CX
  115.                               PUSH       DX
  116.                               PUSH       SI
  117.                               PUSH       DI
  118.                               PUSH       BP
  119.                               PUSH       DS
  120.                               PUSH       ES
  121.                               PUSHF
  122.                               CALL       INT08SAVE
  123.                               POP        ES
  124.                               POP        DS
  125.                               POP        BP
  126.                               POP        DI
  127.                               POP        SI
  128.                               POP        DX
  129.                               POP        CX
  130.                               POP        BX
  131.                               POP        AX
  132.                               IRET
  133. INT08TRAP                     ENDP
  134. EOTRAP:
  135. SETUP                         PROC
  136.  
  137.                               MOV        DS,AX
  138.                               MOV        SI,20H
  139.                               CLI
  140.                               LES        AX,DWORD PTR[SI]
  141.                               MOV        WORD PTR INT08SAVE,AX
  142.                               MOV        WORD PT
  143.                               MOV        WORD PTR [SI],OFFSET INT08TRAP
  144.                               MOV        [SI+2],CS
  145.                               STI
  146.                               MOV        DX,OFFSET EOTRAP+1
  147.                         
  148. SETUP                         ENDP
  149. CODE                          ENDS
  150.                               END        START
  151.  
  152. It may be faster to enter the follwoing bytes using debug and writing them
  153. to the file profix.com, thus saving your original prokey file:
  154.  
  155.  
  156. e100
  157. 0100:  EB 1D 00 00 00 00 50 53 51 52 56 57 55 1E 06 9C
  158. 0110:  2E FF 1E 02 01 07 1F 5D 5F 5E 5A 59 5B 58 CF 33
  159. 0120:  C0 8E D8 BE 20 00 FA C4 04 2E A3 02 01 2E 8C 06
  160. 0130:  04 01 C7 04 06 01 8C 4C 02 FB BA 20 01 CD 27
  161. RCX
  162. 3F
  163. NPROFIX.COM
  164. W
  165.  
  166.  
  167. NOW USE PROFIX INSTEAD OF PROKEY
  168.  
  169. NOTE:  THIS MAY NOT BE THE COMPLETE SOLUTION AS THE WORD STILL DOES NOT
  170. WORK WITH PROKEY.  FURTHERMORE THIS HAS ONLY BEEN TESTED USING PROKEY
  171. VERSION 3.0 - OLDER VERSIONS MAY HAVE OTHER BUGS!
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182. Press ENTER to continue: 
  183. N TESTED USING PROKEY
  184. VERSION 3.0 - OLDER VERSIONS